package com.bergerkiller.bukkit.tc.signactions;

public enum SignActionType {
    NONE, REDSTONE_CHANGE, REDSTONE_ON, REDSTONE_OFF, MEMBER_ENTER, MEMBER_MOVE, MEMBER_LEAVE, GROUP_ENTER, GROUP_LEAVE,
    MEMBER_UPDATE, GROUP_UPDATE;

    /**
     * This sign action type is redstone-related
     * 
     * @return redstone related
     */
    public boolean isRedstone() {
        switch (this) {
        case REDSTONE_CHANGE:
        case REDSTONE_ON:
        case REDSTONE_OFF:
            return true;
        default:
            return false;
        }
    }

    /**
     * This sign action type was generated by train or cart movement
     * 
     * @return movement related
     */
    public boolean isMovement() {
        switch (this) {
        case REDSTONE_CHANGE:
        case REDSTONE_ON:
        case REDSTONE_OFF:
        case MEMBER_UPDATE:
        case GROUP_UPDATE:
            return false;
        default:
            return true;
        }
    }
}